home *** CD-ROM | disk | FTP | other *** search
/ Movie Clips Screensaver / Movie Clips Screen Saver.iso / expert.mst < prev    next >
Text File  |  1995-01-25  |  21KB  |  716 lines

  1. '$define debug
  2.  
  3. '$include 'setupapi.inc'
  4. '$include 'msdetect.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6.  
  7. ''Standard Dialog ID's : Make sure these are consistent with STDCUI.H file.
  8.  
  9. const WELCOME = 100
  10. const ASKQUIT = 200
  11. const DESTPATH = 300
  12. const EXITQUIT = 600
  13. const EXITSUCCESS = 700
  14. CONST EXITFAILURE   = 400
  15. CONST APPHELP       = 900
  16. CONST CHECK         = 2500
  17. CONST SMALLWIN      = 2200
  18. CONST RESTART       = 2600
  19. CONST RESTARTII     = 2700
  20.  
  21. ''Custom Dialog ID's : Make sure these are consistent with CUIDLG.H file.
  22.  
  23. const SELECTMODE = 6201
  24. const SELECTCHIP = 6202
  25. const SELECTSIZE = 6203
  26. const TOOBIG = 6204
  27. const SELECTCLIPS = 6205
  28. const SELECTPLAYER = 6206
  29. const NEWEXTWARNING = 6207
  30. const CHOOSECDROM = 6208
  31.  
  32. '' Error IDs
  33.  
  34. const ERR_BADVGAMODE = 8000
  35. const ERR_BADCPU = 8001
  36. const ERR_BADWINDOWSPATH = 8002
  37. const ERR_BADPATH = 8003
  38.  
  39. ''Bitmap ID
  40.  
  41. const LOGO = 6101
  42.  
  43. ''Bitmap ID
  44. CONST VFWLOGO = 1
  45.  
  46.  
  47. ''Chip sets : Make sure these are consistent with the WhatVga DLL
  48.  
  49. const CIRRUS = 100
  50. const EVEREX = 101
  51. const PARADISE = 102
  52. const TSENG = 103
  53. const TRIDENT = 104
  54. const T8900 = 105
  55. const ATIVGA = 106
  56. const AHEADA = 107
  57. const AHEADB = 108
  58. const OAKTECH = 109
  59. const VIDEO7 = 110
  60. const CHIPSTECH = 111
  61. const TSENG4 = 112
  62. const GENOA = 113
  63. const NCR = 114
  64. const COMPAQ = 115
  65. const UNKNOWN = -1
  66.  
  67. ''User interface DLL name
  68.  
  69. const UIDll$ = "cui.dll"
  70.  
  71. ''Constants for functions
  72.  
  73. ''GetProcessor
  74.  
  75. const IS386 = 3
  76.  
  77. ''GetDeviceCaps
  78.  
  79. const NUMCOLORS = 24
  80. const SIZEPALETTE = 104
  81.  
  82. '' Global variable declaration
  83.  
  84. global ExpertPath$     ''Default destination directory.
  85. global WindowsDir$      ''Windows directory.
  86. global ExpertIniPath$  ''Path to the INI file to be used
  87. GLOBAL SizeReq&  '' Total Disk Size required for installation
  88.  
  89. ''File Types
  90. GLOBAL WinDir$
  91. GLOBAL WinSysDir$
  92. GLOBAL WinSys32Dir$
  93. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  94. GLOBAL CHECKSTATES$
  95. GLOBAL MinorVer%
  96. GLOBAL OnNT$
  97.  
  98. '' functions/procedure declaration
  99. declare sub ConfirmQuit
  100. declare function MakePath (szDir$, szFile$) as string
  101. declare function GetColors() as integer
  102. DECLARE SUB VFW_Install
  103. DECLARE SUB VFW_Init
  104.  
  105. '' External function/procedure declaration
  106.  
  107. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  108. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  109. DECLARE SUB Reboot LIB "iniupd.dll"
  110. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  111. declare function GetDC lib "USER.EXE" (hwnd%) as integer 
  112. declare function ReleaseDC lib "USER.EXE" (hwnd%, hdc%) as integer
  113. declare function GetDeviceCaps lib "GDI.EXE" (hdc%, iCapabilities%) as integer
  114.  
  115. Init:   '' Start here
  116.  
  117.     '' Set up the error traps
  118.  
  119.     on error goto HandleError
  120.  
  121.     '' Set up the way the install program looks
  122.  
  123.     SetBitmap UIDll$, LOGO
  124.     SetTitle "Expert Movie Clips Screen Saver Setup"
  125.  
  126.     '' Make sure proper hardware is there
  127.  
  128.     if GetProcessorType() < IS386 then
  129.  
  130.         '' We aren't on a 386 or above. FATAL!
  131.  
  132.         error ERR_BADCPU
  133.  
  134.     end if
  135.  
  136.     i% = GetColors()
  137.  
  138.     if i% <= 16 then
  139.  
  140.         '' make sure we didn't just wrap around...
  141.  
  142.         if i% >= 0 then
  143.  
  144.             '' We don't have a VGA driver with 256 colors
  145.             '' installed. FATAL!
  146.  
  147.             error ERR_BADVGAMODE
  148.  
  149.         end if
  150.  
  151.     end if
  152.  
  153.     '' Find the INF file
  154.  
  155.     szInfPath$ = GetSymbolValue("STF_SRCINFPATH")
  156.     if szInfPath$ = "" then
  157.         '' No predefined path for INF file, so just assume it is in
  158.         '' the current directory.
  159.  
  160.         szInfPath$ = GetSymbolValue("STF_CWDDIR") + "EXPERT.INF"
  161.     end if
  162.  
  163.     '' Load in the INF file
  164.  
  165.     ReadInfFile szInfPath$
  166.  
  167.     '' Set the size checking mode
  168.  
  169.     i% = SetSizeCheckMode(scmOnIgnore)
  170.  
  171.     '' Check that windows diectory is writable
  172.  
  173.     WindowsDir$ = GetWindowsDir()
  174.     i% = IsDirWritable(WindowsDir$)
  175.     if i% = 0 then
  176.  
  177.         '' Error: can't write to windows directory. exit.
  178.  
  179.         error ERR_BADWINDOWSPATH
  180.  
  181.     endif
  182.  
  183.     '' setup the ini path
  184.  
  185.     ExpertIniPath$ = MakePath(WindowsDir$, "CONTROL.INI")
  186.  
  187. DOWELCOME:
  188.  
  189.     sz$ = UIStartDlg(UIDll$, WELCOME, "FInfoDlgProc", 0, "")
  190.     if sz$ = "CONTINUE" then
  191.         UIPop 1
  192.     else
  193.         ConfirmQuit
  194.         goto DOWELCOME
  195.     end if
  196.  
  197.     '' Do the main thing
  198.  
  199. GETPATH:
  200.  
  201.     '' Set up symbols as parameters for dialog box
  202.  
  203.     if mid$(WindowsDir$, 2, 1) = ":" then
  204.         DefExpertPath$ = mid$(WindowsDir$, 1, 2) + "\XMOVIE"
  205.     else
  206.         DefExpertPath$ = "C:\XMOVIE"
  207.     end if
  208.  
  209.  
  210.     SetSymbolValue "EditTextIn", DefExpertPath$
  211.     SetSymbolValue "EditFocus", "ALL"
  212.  
  213. GETPATHL1:
  214.  
  215.     sz$ = UIStartDlg(UIDll$, DESTPATH, "FEditDlgProc", 0, "")
  216.     ExpertPath$ = GetSymbolValue("EditTextOut")
  217.  
  218.     if sz$ = "CONTINUE" then
  219.  
  220.         '' Make sure our target is writable
  221.  
  222.         if IsDirWritable(ExpertPath$) = 0 then
  223.  
  224.             error ERR_BADPATH
  225.  
  226.             '' will resume here
  227.  
  228.             err = 0
  229.             goto GETPATHL1
  230.  
  231.         end if
  232.  
  233.         UIPop 1
  234.  
  235.     elseif sz$ = "REACTIVATE" then
  236.         goto GETPATHL1
  237.     else
  238.         ConfirmQuit
  239.         goto GETPATH
  240.     end if
  241.  
  242.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  243.     CreateDir ExpertPath$, cmoNone
  244.  
  245.     '' Determine the speed of the machine. For the moment ignore this and
  246.     '' just use default for rate and simple size selection
  247.  
  248.     '' default for speed
  249.  
  250.     Rate$ = "30"
  251.  
  252.     '' select the size of the player
  253.  
  254.     Size$ = "320"
  255.     Small$ = "0"
  256.  
  257. STARTCOPYING:
  258.  
  259.     '' Add standard files to the copy list
  260.  
  261.     AddSectionFilesToCopyList "Expert", SrcDir$, ExpertPath$
  262.     AddSectionFilesToCopyList "Background", SrcDir$, MakePath(ExpertPath$, "backgrnd")
  263.     AddSectionFilesToCopyList "Windows", SrcDir$, WindowsDir$
  264.  
  265.     '' Determine if there is enough disk space for the installation.
  266.     '' DiskSp& will be > 0 if there is NOT enough space. It will be 0 if there
  267.     '' is sufficient free disk space for the installation
  268.  
  269.     SpaceCost& = GetCopyListCost(szExtra$,szCosts$, szNeeded$)
  270.  
  271.     '' Tell user how much more space is needed.
  272.  
  273.     if (SpaceCost& > 0) then
  274.         SpaceCostKB% = SpaceCost& / 1000
  275.         sz$ = str$(SpaceCostKB%)
  276.         SetSymbolValue "SpaceNeeded", sz$
  277.  
  278.         sz$ = UIStartDlg(UIDll$, TOOBIG, "FTooBigDlgProc", 0, "")
  279.  
  280.         UIPop 1
  281.         error STFQUIT
  282.     endif
  283.  
  284.     '' Copy the files
  285.  
  286.     CopyFilesInCopyList
  287.  
  288.     '' Set up the ini file
  289.  
  290.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "MoviePath", ExpertPath$, cmoOverwrite
  291.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "CDROMPath", SrcDir, cmoOverwrite
  292.  
  293.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "ReelPath", MakePath(ExpertPath$, "movies.lst"), cmoOverwrite
  294.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Rate", Rate$, cmoOverwrite
  295.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Small", Small$, cmoOverwrite
  296.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Playtype", "1", cmoOverwrite
  297.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "PreferredExt", ".avi", cmoOverwrite
  298.  
  299.     '' Specify the default backdrop as TV. 0=theater;1=TV;2=newspaper
  300.  
  301.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Background", "1", cmoOverwrite
  302.  
  303.     '' Set up the backdrop files
  304.  
  305.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Bitmap0", MakePath(ExpertPath$, "backgrnd\closeup.dib") + ",160,77", cmoOverwrite
  306.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Bitmap1", MakePath(ExpertPath$, "backgrnd\bigtv.dib") + ",178,178", cmoOverwrite
  307.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Bitmap2", MakePath(ExpertPath$, "backgrnd\bigpaper.dib") + ",147,129", cmoOverwrite
  308.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "BackgroundX", "178", cmoOverwrite
  309.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "BackgroundY", "178", cmoOverwrite
  310.  
  311.     '' Add NULL/default values for other INI file keys
  312.  
  313.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "Tiled", "0", cmoOverwrite
  314.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "BackgroundPath", "", cmoOverwrite
  315.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "History0", "", cmoOverwrite
  316.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "History1", "", cmoOverwrite
  317.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "History2", "", cmoOverwrite
  318.     CreateIniKeyValue ExpertIniPath$, "Screen Saver.Expert", "History3", "", cmoOverwrite
  319.     C